// import 'package:flutter/material.dart';
// import 'dart:io';

// class AnalysisResultPage extends StatefulWidget {
//   final File? reportImage;
//   final String symptoms;
//   final String history;
//   final String familyHistory;

//   const AnalysisResultPage({
//     Key? key,
//     this.reportImage,
//     required this.symptoms,
//     required this.history,
//     required this.familyHistory,
//   }) : super(key: key);

//   @override
//   State<AnalysisResultPage> createState() => _AnalysisResultPageState();
// }

// class _AnalysisResultPageState extends State<AnalysisResultPage> {
//   final List<String> _analysisResults = [];
//   bool _isGenerating = true;
//   int _currentLine = 0;

//   final List<String> _fullResults = [
//     "可能性1：急性胃肠炎",
//     "典型症状",
//     "",
//     "饮食不洁后突发绞痛",
//     "",
//     "呕吐先于腹泻出现",
//     "",
//     "肠鸣音亢进（但本例肠鸣音减弱需警惕）",
//     "",
//     "诊断依据",
//     "",
//     "近期高脂饮食史",
//     "",
//     "血常规白细胞升高",
//     "",
//     "腹部超声排除胆道梗阻",
//     "",
//     "检查计划",
//     "",
//     "血常规+CRP",
//     "",
//     "血清淀粉酶/脂肪酶",
//     "",
//     "腹部立位X线（排除穿孔）",
//     "",
//     "粪便常规+隐血试验",
//     "",
//     "可能性2：肾结石（输尿管上段）",
//     "典型症状",
//     "",
//     "向会阴部/腰背部的放射性绞痛",
//     "",
//     "伴恶心呕吐但无腹泻",
//     "",
//     "肉眼/镜下血尿",
//     "",
//     "诊断依据",
//     "",
//     "既往有痛风病史",
//     "",
//     "肾区叩击痛阳性",
//     "",
//     "尿常规红细胞>50/HPF",
//     "",
//     "检查计划",
//     "",
//     "急诊泌尿系B超",
//     "",
//     "尿常规+沉渣分析",
//     "",
//     "非增强腹部CT（金标准）",
//     "",
//     "血尿酸检测",
//   ];

//   @override
//   void initState() {
//     super.initState();
//     _startGenerating();
//   }

//   void _startGenerating() async {
//     while (_currentLine < _fullResults.length) {
//       if (!mounted) return;

//       setState(() {
//         _analysisResults.add(_fullResults[_currentLine]);
//         _currentLine++;
//       });

//       await Future.delayed(const Duration(milliseconds: 100));
//     }

//     if (mounted) {
//       setState(() {
//         _isGenerating = false;
//       });
//     }
//   }

//   @override
//   Widget build(BuildContext context) {
//     return Scaffold(
//       backgroundColor: Colors.white,
//       appBar: AppBar(
//         backgroundColor: const Color(0xFF1DC4A0),
//         elevation: 0,
//         leading: IconButton(
//           icon: const Icon(Icons.arrow_back_ios, color: Colors.white),
//           onPressed: () => Navigator.pop(context),
//         ),
//         title: const Text(
//           '分析结果',
//           style: TextStyle(
//             color: Colors.white,
//             fontSize: 18,
//             fontWeight: FontWeight.w600,
//           ),
//         ),
//       ),
//       body: Stack(
//         children: [
//           ListView.builder(
//             padding: const EdgeInsets.all(20),
//             itemCount: _analysisResults.length,
//             itemBuilder: (context, index) {
//               final text = _analysisResults[index];
//               if (text.startsWith('可能性')) {
//                 return Padding(
//                   padding: const EdgeInsets.only(top: 20, bottom: 10),
//                   child: Text(
//                     text,
//                     style: const TextStyle(
//                       fontSize: 20,
//                       fontWeight: FontWeight.bold,
//                       color: Color(0xFF1DC4A0),
//                     ),
//                   ),
//                 );
//               } else if (text == '典型症状' || text == '诊断依据' || text == '检查计划') {
//                 return Padding(
//                   padding: const EdgeInsets.only(top: 15, bottom: 10),
//                   child: Text(
//                     text,
//                     style: const TextStyle(
//                       fontSize: 18,
//                       fontWeight: FontWeight.w600,
//                     ),
//                   ),
//                 );
//               } else if (text.isEmpty) {
//                 return const SizedBox(height: 5);
//               } else {
//                 return Padding(
//                   padding: const EdgeInsets.only(left: 20),
//                   child: Row(
//                     crossAxisAlignment: CrossAxisAlignment.start,
//                     children: [
//                       Container(
//                         margin: const EdgeInsets.only(top: 8),
//                         width: 6,
//                         height: 6,
//                         decoration: const BoxDecoration(
//                           color: Color(0xFF1DC4A0),
//                           shape: BoxShape.circle,
//                         ),
//                       ),
//                       const SizedBox(width: 10),
//                       Expanded(
//                         child: Text(
//                           text,
//                           style: const TextStyle(
//                             fontSize: 16,
//                             height: 1.5,
//                           ),
//                         ),
//                       ),
//                     ],
//                   ),
//                 );
//               }
//             },
//           ),
//           if (_isGenerating)
//             Positioned(
//               right: 20,
//               bottom: 20,
//               child: Container(
//                 padding: const EdgeInsets.symmetric(
//                   horizontal: 16,
//                   vertical: 8,
//                 ),
//                 decoration: BoxDecoration(
//                   color: const Color(0xFF1DC4A0),
//                   borderRadius: BorderRadius.circular(20),
//                 ),
//                 child: Row(
//                   mainAxisSize: MainAxisSize.min,
//                   children: [
//                     const SizedBox(
//                       width: 16,
//                       height: 16,
//                       child: CircularProgressIndicator(
//                         strokeWidth: 2,
//                         valueColor: AlwaysStoppedAnimation<Color>(Colors.white),
//                       ),
//                     ),
//                     const SizedBox(width: 8),
//                     const Text(
//                       'AI分析中...',
//                       style: TextStyle(
//                         color: Colors.white,
//                         fontSize: 14,
//                       ),
//                     ),
//                   ],
//                 ),
//               ),
//             ),
//         ],
//       ),
//     );
//   }
// }

import 'package:flutter/material.dart';
import 'dart:io';
import '../services/deepseek_service.dart';

class AnalysisResultPage extends StatefulWidget {
  final File? reportImage;
  final String symptoms;
  final String history;
  final String familyHistory;
  final String gender;
  final String age;
  final String bloodType;

  const AnalysisResultPage({
    Key? key,
    this.reportImage,
    required this.symptoms,
    required this.history,
    required this.familyHistory,
    required this.gender,
    required this.age,
    required this.bloodType,
  }) : super(key: key);

  @override
  State<AnalysisResultPage> createState() => _AnalysisResultPageState();
}

class _AnalysisResultPageState extends State<AnalysisResultPage> {
  final List<String> _analysisResults = [];
  bool _isGenerating = true;
  final DeepSeekService _deepSeekService = DeepSeekService(
      'sk-4e0e104af45b432d86f0b95db6681b9f'); // Use your actual API key

  @override
  void initState() {
    super.initState();
    _generateAnalysis();
  }

  Future<void> _generateAnalysis() async {
    try {
      final prompt = '''
请根据以下患者信息进行专业诊断分析：

性别：${widget.gender}
年龄：${widget.age}
血型：${widget.bloodType}
现病史：${widget.history}
家族史：${widget.familyHistory}
症状：${widget.symptoms}

请提供以下方面的分析：
1. 潜在疾病
2. 症状分析
3. 诊断依据
4. 建议检查
5. 注意事项

请以专业医生的角度进行分析，并给出详细的建议，避免使用markdown语法，请直接输出分析内容，不需要输出“根据你提提供的信息”等字样。
''';

      final response = await _deepSeekService.getMedicalAdvice(prompt);

      if (mounted) {
        setState(() {
          _analysisResults.addAll(response.split('\n'));
          _isGenerating = false;
        });
      }
    } catch (e) {
      if (mounted) {
        setState(() {
          _analysisResults.add('生成分析结果时出错：$e');
          _isGenerating = false;
        });
      }
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Colors.white,
      body: SafeArea(
        child: Column(
          children: [
            // 顶部绿色背景区域
            Container(
              padding: const EdgeInsets.only(
                  left: 20, right: 20, bottom: 20, top: 10),
              color: const Color(0xFF1DC4A0),
              child: Row(
                children: [
                  IconButton(
                    icon: const Icon(Icons.arrow_back, color: Colors.white),
                    onPressed: () => Navigator.pop(context),
                    padding: EdgeInsets.zero,
                  ),
                  const SizedBox(width: 10),
                  const Text(
                    '分析结果',
                    style: TextStyle(
                      color: Colors.white,
                      fontSize: 24,
                      fontWeight: FontWeight.bold,
                    ),
                  ),
                ],
              ),
            ),

            // 内容区域
            Expanded(
              child: SingleChildScrollView(
                padding: const EdgeInsets.all(20),
                child: _isGenerating
                    ? const Center(child: CircularProgressIndicator())
                    : Column(
                        crossAxisAlignment: CrossAxisAlignment.start,
                        children: _analysisResults
                            .map((line) => Padding(
                                  padding: const EdgeInsets.only(bottom: 10),
                                  child: Text(
                                    line,
                                    style: const TextStyle(fontSize: 16),
                                  ),
                                ))
                            .toList(),
                      ),
              ),
            ),
          ],
        ),
      ),
    );
  }
}
